package com.sheep.Pattern.Singleton.emunSingle;

import lombok.Builder;

/**
 * @author Sheep
 * 枚举类实现单例模式
 * 优点：   1. 枚举类实现单例模式是线程安全的，并且只会装载一次，设计者充分的利用了枚举的这个特性来实现单例模式，枚举的写法非常简单，而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。
 *         2. 枚举类实现单例模式可以防止反序列化重新创建新的对象。
 *         3. 枚举类实现单例模式可以防止反射攻击。
 *
 *  缺点:   1. 枚举类实现单例模式的代码量比较多。
 */

public enum EmunSingle {
    INSTANCE;
    public void doSomething(){
        System.out.println("单例");
    }
}

class Test{
    public static void main(String[] args) {
        EmunSingle.INSTANCE.doSomething();

    }
}